"""页面类
对163邮箱的登录进行操作流程：
有iframe框架先进入iframe框架，
id为变动的id
该页面用于元素的定位，封装元素的方法，以及登录的逻辑流程
"""
import os,allure
import pytest
from selenium.webdriver.common.by import By

from Base.base import Base

class Page(Base):
    url=os.getenv('base_url')
    #元素定位
    #先进入iframe框架  获取动态id信息  id="x-URS-iframe"
    iframe_loc=(By.XPATH,'/html/body/div[3]/div[3]/div[1]/div/div[3]/div[1]/div[2]/iframe')
    #2.对输入手机号的定位  name="email"
    username_loc=(By.NAME,'email')
    #3.对输入密码的定位 name="password"
    password_loc=(By.NAME,'password')
    #4.点击登录  id="dologin"
    dologin_loc=(By.ID,'dologin')
    #断言 登录成功之后 id="spnUid"
    dy_loc=(By.ID,'spnUid')
    #封装元素的方法
    #封装进入iframe框的方法
    @allure.step('进入iframe')
    def iframe(self):
        self.into_inframe(self.iframe_loc)
        # self.into_inframe(0)
    #对用户名进行输入操作
    def username(self,email):
        self.send_key(self.username_loc,email)
    #对密码进行输入操作
    def password(self,password):
        self.send_key(self.password_loc,password)
    #对登录进行点击事件
    def dologin(self):
        self.click(self.dologin_loc)
    def dy(self):
        return self.get_text(self.dy_loc)
    #逻辑
    def login_email_luoji(self,email,password):
        with allure.step('打开网址'):
            self.open_url(self.url)
        # with allure.step("进入iframe框架"):
        self.iframe()
        self.username(email)
        self.password(password)
        self.dologin()
        self.out_iframe()
        print(self.dy())
        assert "yan030220hyb@163.com" == self.dy()